The present invention relates to technologies for monitoring a plurality of devices that are capable of communicating with one another through a network, and to technologies for managing each program module that operates in the devices.
In recent years, the home-use broadband network infrastructure has been built. As a result, the home network environment in which home information appliances with high functionality are connected with one another is attracting public attention. Such an environment is based on the assumption that home information appliances (devices), each of which is connected to a network, operate in cooperation with one another, and provide users with services having new added value.
Examples of technologies for controlling a plurality of devices, each of which is connected to a home network, include UPnP (UPnP is a registered trademark of UPnP Implementors Corporation, and is an abbreviation of “Universal Plug and Play”), and HAVi (HAVi is a registered trademark of HAVi Organization, and is an abbreviation of “Home Audio/Video Interoperability”). Communications protocols are specified for these standard technologies so that devices made by different manufacturers can cooperatively operate.
On the other hand, various kinds of mechanisms used to complement a function which cannot be supported by the standard technologies are devised. JP-A-2005-309617 discloses a method for operating a device, which is not supported by the standard technologies, as a device that is supported by the standard technologies. In addition, JP-A-2006-260425 discloses a method for bringing a device into a suspend state with attention paid to a power consumption problem of a device.
One of characteristics common to these technologies is that an access to a device is relayed through a proxy program for a communications protocol specified by the standard technologies. Because the communications protocol specified by the standard technologies does not depend on hardware of a device, it is possible to use such a proxy program. For example, in JP-A-2005-309617, it is possible to make an access, through a proxy program, from a device which is not supported by the standard technologies to a device which is supported by the standard technologies.
In addition, if a device which is supported by the standard technologies has a problem (bug) of a program, the program is remotely updated. This method is generally known (JP-A-2005-309617). This technology uses a method in which a program having a problem is remotely updated by use of an agent program that is a program operating in a device, and that is used to update other programs operating in the device.
In general, devices each supported by the standard technologies are developed by many manufacturers. Therefore, the strict conformity to a communications protocol is absolutely required so that the devices operate in cooperation with one another. However, the conformity to the communications protocol is not sufficiently achieved depending on devices, or there is a possibility that a device may have a problem (bug) of a program, or may have a performance problem (the processing speed of a program, the response speed of a response to a request, or the like). Therefore, there is a case where devices cannot normally operate in cooperation with one another.
For example, in the case of the UPnP technology, if data is defective (the data includes a device description which describes information about an UPnP device, and a service description which describes information about services provided by the UPnP device), or if the data cannot be acquired, there is a possibility that the UPnP device itself will not be detected from other devices. Moreover, it is specified that an UPnP device must reply to the device-description acquisition request within 30 seconds. However, there is a possibility that an UPnP device having a performance problem will not be able to reply to the device-description acquisition request within 30 seconds. Accordingly, there is a possibility that the UPnP device will not be detected from other devices.
It is difficult to estimate beforehand that a device which has such a problem will be connected to a network, and that a user will use the device. Therefore, a mechanism for remotely updating a program in a device as disclosed in JP-A-2006-243915 is desired.
However, although the method disclosed in JP-A-2006-243915 is capable of updating a program operating in a device, measures to be taken from a point of time at which a program having a problem is detected until a corrected program is provided are not taken into consideration. Therefore, a user cannot use a device until a program having a problem is corrected and updated, which is a problem to be solved.
An object of the present invention is to provide a program control method that is suitable for the cooperative operation of devices, each of which is connected to a network, by solving the above-described problem.